package com.ray.mapper;

import com.ray.bean.ApplyRepairFormBean;
import com.ray.bean.UserBean;
import com.ray.exception.ServiceException;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ApplyRepairFormMapper {

	/**
	 * 获取订单明细
	 * @param orderId(订单编号)
	 * @return
	 * @throws ServiceException
	 */
	List<ApplyRepairFormBean> getOrderInfoDetail(Map map);

	
	/**
	 * 查询本车间人员
	 * @param workShopId(车间id)
	 * @return
	 */
	List<UserBean> getWorkShopUser(@Param("workShopId")String workShopId);


	/**
	 * 创建申补单
	 * applyRepairFormList(申补单集合)
	 * @param map
	 */
	void insertApplyRepairForm(Map map);


	/**
	 * 获取申补单信息
	 * @param orderId(订单信息 可能是 系统订单编号，工厂型号，客户型号，公司订单编号等)
	 * @param materialDetail(物料信息 可能是 物料名称，规格型号，色号，供应商)
	 * @param status(状态  0未审核 1已审核 2已退回)
	 * @return 
	 * @throws ServiceException
	 */
	List<ApplyRepairFormBean> getApplyRepairForm(Map map);


	/**
	 * 通过id获取申补单
	 * @param id
	 * @return
	 */
	ApplyRepairFormBean getApplyById(@Param("id")String id);


	/**
	 * 通过id删除申补单
	 * @param id(申补单id)
	 * @param map
	 */
	void deleteApplyRepairForm(Map map);


	/**
	 * 通过申补单id删除申补单责任人
	 * @param id(申补单id)
	 * @param map
	 */
	void deletePersonByApplyId(Map map);


	/**
	 * 修改申补单
	 * @param id(申补单id)
	 * @param applyCount(修改数量)
	 * @return
	 * @throws ServiceException
	 */
	void updateApplyRepairForm(Map map);


	/**
	 * 审核退回
	 * @param id(申补单id)
	 * @param status(状态)
	 * @param conpanyShare(公司占比) 
	 * @return
	 * @throws ServiceException
	 */
	void approvalApplyRepairForm(Map map);


	/**
	 * 通过订单编号获取投料单主表id
	 * @param orderId(订单编号)
	 * @return
	 */
	List<String> getFeedMainIdByOrderId(@Param("orderId")String orderId);


	/**
	 * 插入投料单主表
	 * @param feedMainId(投料单主表id)
	 * @param orderId(订单编号)
	 */
	void insertFeedMain(@Param("id")String feedMainId,@Param("orderId") String orderId,@Param("loginCompany")String loginCompany);


	/**
	 * 插入投料单明细
	 * @param map
	 */
	void insertFeedDeatil(Map map);

	/**
	 * 获取申补单通过投料单明细id
	* @date 2018年7月9日 下午5:08:04 
	* @author 李斌
	* @return ApplyRepairFormBean 
	* @throws
	 */
	ApplyRepairFormBean getApplyByFeedDetailId(Map<String,Object> feedMap);


	int getApplyRepairFormCount(Map map);
	
}
